"""需求：使用‘注册A.html’页面，完成以下操作：
1).获取用户名输入框的大小
2).获取页面上第一个超链接的文本内容
3).获取页面上第一个超链接的地址
4).判断页面中的span标签是否可见
5).判断页面中取消按钮是否可用
6).判断页面中'旅游'对应的复选框是否为选中的状态
"""

import time
from selenium import webdriver
from selenium.webdriver.common.by import By

# 1. 启动浏览器并打开本地HTML文件
local_path = r"E:\dg\python\pythonProject\UI自动化\窗口切换\注册A.html"  # 定义本地HTML文件的路径，使用原始字符串（r前缀）避免转义问题
url = "file:///" + local_path.replace("\\", "/")  # 将本地文件路径转换为浏览器可识别的URL格式：file:///开头，并将反斜杠\替换为正斜杠/
driver = webdriver.Chrome()
driver.get(url)

# 1).获取用户名输入框的大小
user_url = driver.find_element(by=By.XPATH, value=".//*[@id='userA']")  # 使用 XPath 定位 id 为 'userA' 的用户名输入框元素
user_test = user_url.size  # 调用 .size 属性获取该元素的尺寸，返回字典：{'width': 宽度, 'height': 高度}
print(f"输入框的大小为：{user_test}")

# 2).获取页面上第一个超链接的文本内容
result = driver.find_element(By.XPATH, value=".//*[@id='fwA']")
text = result.text  # 获取该超链接显示的可见文本内容
print(f"第一个超链接的文本内容为:{text}")

# 3).获取页面上第一个超链接的地址
url = result.get_attribute("href")
print(f"页面上第一个超链接为:{url}")

# 4).判断页面中的span标签是否可见
span_element = driver.find_element(By.TAG_NAME, "span")  # # 使用标签名（tag name）定位页面中第一个 <span> 元素
is_span_visible = span_element.is_displayed()  # is_displayed判断Span标签是否可见
bqnr = span_element.text
print(f"span标签是否可见：{is_span_visible}")
print(f"span标签内容为：{bqnr}")


# 5).判断页面中取消按钮是否可用
cancel_button = driver.find_element(By.XPATH, value=".//*[@id='cancelA']")  # 使用 XPath 定位 id 为 'cancelA' 的“取消”按钮
is_button_enabled = cancel_button.is_enabled()  # is_enabled判断取消按钮是否可用
print(f"取消按钮是否可用：{is_button_enabled}")

# 6).判断页面中'旅游'对应的复选框是否为选中的状态
travel_checkbox = driver.find_element(By.XPATH, ".//*[@id='lyA']")  # 使用 XPath 定位 id 为 'lyA' 的复选框（checkbox）元素（对应“旅游”选项）
is_checked = travel_checkbox.is_selected()  # is_selected判断复选框是否选中
print(f"'旅游'复选框是否选中：{is_checked}")

time.sleep(3)

driver.quit()
